The present invention relates to rule-based intelligent agent systems, and, in particular, to improvements for managing events and rule sets in multi-user intelligent agent environments.
An intelligent agent is a specialized program which autonomously performs tasks on behalf of users based on instructions given to it by the users, and may also communicate and exchange data with other intelligent agents. One example of an intelligent agent program is called a personal assistant. Personal assistant programs, which often use rule-based forms of instructions, are quickly becoming the state-of-the-art method for automatically performing tasks on the workstation, particularly in an office environment.
Personal assistant programs offer the user a particular set of events which the personal assistant can automate, conditions to be evaluated about the events, and actions to be taken based Qn the events and conditions. The events specify occurrences of events in an office environment designated by the user, such as the point in time when the user receives an electronic mail item. The conditions are related criteria at the time the event occurs, such as a certain time of day or from whom the electronic mail was sent. The actions are the functions designated by the user to occur automatically when the event occurs under the stated conditions.
For example, a personal assistant may process three types of events:
1. Mail: When mail arrives
2. Time: At a specific time
3. File: If file manipulation occurs.
Table 1 shows events, conditions, and action elements offered by an exemplary personal assistant program which performs mail manipulation:
As shown in Table 1, a user has defined two events: xe2x80x9cNew Mailxe2x80x9d and xe2x80x9cTime Alarm.xe2x80x9d The entries of the xe2x80x9cConditionsxe2x80x9d column are the criteria under which the personal assistant program is to take an action on the event, such as looking for a certain string of characters, xe2x80x9ckeyword,xe2x80x9d in the text of a received mail item, and/or starting an action at a certain time xe2x80x9ctime.xe2x80x9d The xe2x80x9cActionsxe2x80x9d column indicates the action that the program must take once the specified set of conditions is satisfied, such as transferring a mail item to a particular mail folder and/or scanning the user""s existing mail to generate reminders for overdue mail items.
The user selects events, conditions, and actions to be used in building a rule, then the user connects these elements appropriately. Rules can be built to execute all actions if any condition is met, all actions only if all conditions are met, or ordered actions if select criteria are met. Only certain conditions and certain actions can be associated with each event.
Continuing with the example, a typical rule may be defined with the elements shown in Table 2:
This rule causes the following to occur: if a new mail item arrives and the text of the mail item contains the phrase xe2x80x9cFor Salexe2x80x9d, the mail item is moved into he xe2x80x9cJunk mailxe2x80x9d folder.
A user may define a personal variable to be used in rules. For example, the user might define the term xe2x80x9cmgrxe2x80x9d to be set to the value xe2x80x9cJoexe2x80x9d, then a rule can be built to send a file to the xe2x80x9c%mgr%xe2x80x9d folder, which would cause the mail to be sent to the xe2x80x9cJoexe2x80x9d folder. Therefore, instead of changing all the rules which refer to Joe, only the definition of the personal variable xe2x80x9cmgrxe2x80x9d needs to be changed.
A user may also be able to dynamically assign values to personal variables in a rule. This feature may be useful for such tasks as registering applications for use in other rules, even if the name of the application is not known at the time the rule is built, but becomes known when a particular rule fires.
The example personal assistant has been described above as operates on behalf of a single user. However, intelligent agents may operate on behalf of multiple users simultaneously, such as in a server system shared by the users. In such multi-user environments an additional degree of complexity is added since the rules used by the intelligent agent can be defined and changed by each of the agent""s users. Consequently, the system must keep track of on whose behalf it is processing a particular event and use the correct rule sets for processing of that user""s events. Moreover, the system must also allow modifications to one user""s rule sets while the intelligent agents is processing events for other users.
The present invention relates to a method and apparatus which operates a rule-based intelligent agent to process events occurring in a computer system on behalf of a group of users. The method and apparatus 1) receive at least one event set and rule set for each of the group of users; 2) associate, with each event set and each rule set, a respective selection key which identifies the rule set and the event set with the respective user; 3) monitor the computer system to detect an occurrence of an event condition, the detected event condition corresponding to an event specified in at least one of the received event sets; 4) assign at least one selection key to the detected event condition, each assigned selection key corresponding to the at least one specified event of the received event sets; and 5) processing the detected event condition using at least one rule set having a respective selection key which matches the selection key assigned to the event condition.